using System;

namespace System.Collections
{
	public interface IStack : System.Collections.ICollection
	{
		object Peek();
        object[] Peek(int count);

		void Push(object value);
		
        object Pop();
        object[] Pop(int count);

        object[] ToArray();

        bool Contains(object value);

		void Clear();
	}

    public interface IStack<T> : IStack
    {
        new T Peek();
        new T[] Peek(int count);

        void Push(T value);
        
        new T Pop();
        new T[] Pop(int count);

        new T[] ToArray();

        bool Contains(T value);
    }
}
